<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // // 整理出来以下会改变原数组的数组方法
      // 1. push
      // 参数：接收一个或多个参数
      // 作用：向指定数组尾部添加元素
      // 返回值：新数组的长度
      // 例如：
      // const arr = ['a', 'b', 'c']
      // const array = arr.push('d', 'e', 'f')
      // console.log(arr) // ['a', 'b', 'c', 'd', 'e', f]
      // console.log(array) // 6

      // 2. pop
      // 参数：不用传参
      // 作用：向指定数组尾部删除
      // 返回值：从数组中删除的元素（当数组为空时返回undefined）。
      // 例如：
      // const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
      // const array = arr.pop()
      // console.log(arr) // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
      // console.log(array) // h

      // 3. unshift
      // 参数：要添加到数组开头的元素。
      // 作用：将一个或多个元素添加到数组的开头
      // 返回值：返回调用方法对象的新 length 属性值。
      // 例如：
      // const arr = ['a', 'b', 'c']
      // const array = arr.unshift('哈哈', 1, 2, 3)
      // console.log(arr) // ['哈哈', 1, 2, 3, 'a', 'b', 'c']
      // console.log(array) // 7

      // 4. shift
      // 参数：不传参
      // 作用：向指定数组头部删除
      // 返回值：从数组中删除的元素（当数组为空时返回undefined）。
      // 例如：
      // const arr = ['a', 'b', 'c', 'd', 'e', 'f']
      // const array = arr.shift()
      // console.log(arr) // ['b', 'c', 'd', 'e', 'f']
      // console.log(array) // a

      // 5. sort
      // 参数：第一个用于比较的元素。第二个用于比较的元素。
      // 作用：数组排序
      // 返回值：排序后的数组
      // 例如：
      // const arr = [1, 30, 4, 21, 100]
      // const array = arr.sort((a, b) => {
      //   return a - b
      // })
      // console.log(arr) // [1, 4, 21, 30, 100]
      // console.log(array) // [1, 4, 21, 30, 100]

      // 6. reverse
      // 参数：不传参
      // 作用：颠倒指定数组
      // 返回值：颠倒后的数组
      // 例如：
      // const arr = ['a', 'b', 'c', 'd', 1, 2, 3, 4]
      // const array = arr.reverse()
      // console.log(arr) // [4, 3, 2, 1, 'd', 'c', 'b', 'a']
      // console.log(array) // [4, 3, 2, 1, 'd', 'c', 'b', 'a']

      // 7. splice
      // 参数：开始的下标,(要添加或替换成的元素)
      // 作用：通过删除或替换现有元素来修改数组
      // 返回值：由被删除的元素组成的一个数组。如果没有删除元素，则返回空数组。
      // 例如：
      const arr = ['a', 'b', 'c', 'd', 'e', 'f']
      const array = arr.splice(3, 1)
      console.log(arr) // ['b', 'c', 'd', 'e', 'f']
      console.log(array) // ['d']
      const array1 = arr.splice(3, 0, '哈哈')
      console.log(arr) // ['a', 'b', 'c', '哈哈', 'e', 'f']
      console.log(array1) // []
    </script>
  </body>
</html>
